package com.gqh.weather.domain.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.util.List;

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PaperInfo {
    /**
     * ID
     */
    @JsonProperty("id")
    private Integer id;
    
    /**
     * 名称
     */
    @JsonProperty("name")
    private String name;
    
    /**
     * 学科
     */
    @JsonProperty("type")
    private Integer type;
    
    /**
     * 开始时间
     */
    @JsonProperty("stime")
    private Integer stime;
    
    /**
     * 结束时间
     */
    @JsonProperty("etime")
    private Integer etime;
    
    @JsonProperty("data")
    private String data;

    @JsonProperty("data_info")
    private List<PaperInfoData> dataInfo;

    /**
     * 试卷数据内部类（对应Go的PaperInfoData结构）
     */
    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class PaperInfoData {
        
        /**
         * 题目类型名称
         */
        @JsonProperty("tname")
        private String tname;
        
        /**
         * 题目类型
         */
        @JsonProperty("qtype")
        private String qtype;
        
        /**
         * 题目数量
         */
        @JsonProperty("qnum")
        private String qnum;
        
        /**
         * 单题分数
         */
        @JsonProperty("single_score")
        private String singleScore;
        
        /**
         * 总分
         */
        @JsonProperty("score")
        private Integer score;
        
        /**
         * 题目ID列表
         */
        @JsonProperty("qids")
        private List<Integer> qids;
        
        /**
         * 题目详情列表
         */
        @JsonProperty("qinfos")
        private List<QuestionInfos> qinfos;
    }
    
    /**
     * 题目详情类（对应Go的QuestionInfos结构）
     */
    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class QuestionInfos {
        /**
         * ID
         */
        @JsonProperty("id")
        private Integer id;
        
        /**
         * 题目类型
         */
        @JsonProperty("qtype")
        private Integer qtype;
        
        /**
         * 程度分(0无1有)
         */
        @JsonProperty("stype")
        private Integer stype;
        
        /**
         * 题目
         */
        @JsonProperty("title")
        private String title;
        
        /**
         * 题目选项
         */
        @JsonProperty("data")
        private String data;
        
        /**
         * 题目内容
         */
        @JsonProperty("content")
        private String content;
        
        /**
         * 正确答案
         */
        @JsonProperty("answer")
        private String answer;
        
        /**
         * 图片URL
         */
        @JsonProperty("pic_url")
        private String picUrl;
        
        /**
         * 本地图片URL
         */
        @JsonProperty("pic_url_pc")
        private String picUrlPc;
        
        /**
         * 子题目详情列表
         */
        @JsonProperty("subid_infos")
        private List<QuestionData> subIDInfos;
    }
    
    /**
     * 题目数据类（对应Go的QuestionData结构）
     */
    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class QuestionData {
        /**
         * ID
         */
        @JsonProperty("id")
        private Integer id;
        
        /**
         * 题目类型
         */
        @JsonProperty("qtype")
        private Integer qtype;
        
        /**
         * 题目
         */
        @JsonProperty("title")
        private String title;
        
        /**
         * 题目选项
         */
        @JsonProperty("data")
        private String data;
        
        /**
         * 题目内容
         */
        @JsonProperty("content")
        private String content;
        
        /**
         * 正确答案
         */
        @JsonProperty("answer")
        private String answer;
        
        /**
         * 图片URL
         */
        @JsonProperty("pic_url")
        private String picUrl;
        
        /**
         * 本地图片URL
         */
        @JsonProperty("pic_url_pc")
        private String picUrlPc;
    }
}